from service.rag_neo4j_service import RAG_Neo4jService
import json

class CompanyNodeLLMService:

    def __init__(self):
        self.ragNeo4jService = RAG_Neo4jService()
        self.chain=self.ragNeo4jService.create_chain()
    #处理json格式的字符串
    def handle_json(self,json_str):
        if "```json" in json_str:
            text = json_str.split("```json")[1].split("```")[0]
        else:
            text = json_str
        #转换成json格式
        info = json.loads(text)
        return info
    #创建节点
    def create_node(self,**kwargs):
        info=f"创建一个Company节点，它的属性有:{kwargs}"
        self.chain.invoke({"query":info})
    #查询节点
    def query_node(self,**kwargs):
        if len(kwargs)>0:
            info=f"查询一个Company节点，它的属性有:{kwargs}"
        else:
            info = "查询所有Company节点，返回的数据必须是json格式"
        rs=self.chain.invoke({"query":info})
        data=self.handle_json(rs["result"])
        return data
    #删除节点
    def delete_node(self,**kwargs):
        info=f"删除一个Company节点，它的属性有{kwargs}"
        self.chain.invoke({"query":info})
    #更新节点
    def update_node(self,**kwargs):
        info=f"更新一个Company节点，它的属性有:{kwargs}"
        self.chain.invoke({"query":info})
#
# if __name__ == '__main__':
#     service=CompanyNodeLLMService()
#     # service.create_node(reg_date="2025-01-04", risk_level= "低", reg_no="91310100000000110", name="长藤资本", industry= "金融", legal_rep="施洪保", registered_capital="10000000", status="存续")
#     rs=service.query_node(name="长藤资本")
#     print(rs)